När ett LiveObject infogas i Webbitorn kontrollerar Content Studio hurvida LiveObjektet har inställningsmöjligheter. Genom att förse LiveObjektet med inställningsmöjligheter kan redaktören konfigurera LiveObjektet enligt önskemål.

Customizable Live Objects delar mycket av syntaxen i de XML-öar som renderas när en AS-komponent infogas. Det kan därför vara enklast att skapa ramverket för ett LiveObjekt genom att definiera en AS-komponent med motsvarande parametrar. I ingressfältet för den definierade AS-komponenten framgår viktig information för det LiveObjekt som ska skapas.

I codebehind för LiveObjektet skall den publika propertyn CS_LiveObjectXML, ärvd från SiteBase, ges parameter-Xml:en som värde. I exemplet nedan antas dokument id vara 2304 och eftersom datat är ren Xml använder man naturligtvis en XmlWriter som skriver till en underliggande StringBuilder:

C#
partial class CS_default_2304 : ContentStudio.Site.SiteBase
{
   //This is the constructor of the current page
    protected CS_default_2304()
    {
      //Here you can run things in the constructor
    }

    // This will run on page load
    protected void Page_Load(object sender, EventArgs e)
    {
        //Enter code here...
        System.Text.StringBuilder sbu = new System.Text.StringBuilder();
        System.Xml.XmlWriterSettings sett = new System.Xml.XmlWriterSettings();
        sett.OmitXmlDeclaration = true;
        using (System.Xml.XmlWriter Xw = System.Xml.XmlWriter.Create(sbu, sett))
        {
            const string NS = "http://www.teknikhuset.se/CS/datatypes";
            Xw.WriteStartDocument();
            Xw.WriteStartElement("CSROOT");
            Xw.WriteAttributeString("xmlns", "cdt", null, NS);
            //Write the component header info
            Xw.WriteStartElement("CSSCRIPT");
            Xw.WriteAttributeString("name", "MyLiveObject");
            Xw.WriteAttributeString("description", "Description of the script goes here. " +
                                    "This is a simple component that describes how to write " +
                                    "inline server code for both C# and VB.Net.");
            Xw.WriteAttributeString("version", "1.0");
            Xw.WriteAttributeString("xhtmlsafe", "1");
            Xw.WriteAttributeString("content", "inline");
            Xw.WriteAttributeString("id", "");
            Xw.WriteAttributeString("serverlanguage", "c#|vb");
            //Write the parameters section element
            Xw.WriteStartElement("PARAMETERS");
            //Write a parameter
            Xw.WriteStartElement("PARAMETER");
            Xw.WriteAttributeString("size", NS, "");
            Xw.WriteAttributeString("type", NS, "");
            Xw.WriteAttributeString("name", NS, "MyParameter");
            Xw.WriteAttributeString("description", NS, "Parameter description goes here.");
            Xw.WriteAttributeString("value", NS, "This is the default value for this parameter");
            Xw.WriteEndElement(); //PARAMETER
            //More parameters goes here
            //
            //
            //Close the open elements
            Xw.WriteEndElement(); //PARAMETERS
            Xw.WriteEndElement(); //CSSCRIPT
            Xw.WriteEndElement(); //CSROOT
            Xw.WriteEndDocument();
            Xw.Flush();
        }
       //Set the value of the inherited property CS_LiveObjectXML
        CS_LiveObjectXML = sbu.ToString();
    }
}
Visual Basic .NET
Partial Class CS_default_2304
    Inherits ContentStudio.Site.SiteBase

   'This is the constructor of the current page
    Protected Sub New()
      'Here you can run things in the constructor
    End Sub

    ' This will run on page load
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        'Enter code here...
        Dim sbu As New System.Text.StringBuilder()
        System.Xml.XmlWriterSettings sett = new System.Xml.XmlWriterSettings()
        sett.OmitXmlDeclaration = True
        Using Xw As System.Xml.XmlWriter = System.Xml.XmlWriter.Create(sbu, sett)
            Const NS As String = "http://www.teknikhuset.se/CS/datatypes"
            Xw.WriteStartDocument()
            Xw.WriteStartElement("CSROOT")
            Xw.WriteAttributeString("xmlns", "cdt", Nothing, NS)
            'Write the component header info
            Xw.WriteStartElement("CSSCRIPT")
            Xw.WriteAttributeString("name", "MyLiveObject")
            Xw.WriteAttributeString("description", "Description of the script goes here. " _ &
                                    "This is a simple component that describes how to write " _ &
                                    "inline server code for both C# and VB.Net.")
            Xw.WriteAttributeString("version", "1.0")
            Xw.WriteAttributeString("xhtmlsafe", "1")
            Xw.WriteAttributeString("content", "inline")
            Xw.WriteAttributeString("id", "")
            Xw.WriteAttributeString("serverlanguage", "c#|vb")
            'Write the parameters section element
            Xw.WriteStartElement("PARAMETERS")
            'Write a parameter
            Xw.WriteStartElement("PARAMETER")
            Xw.WriteAttributeString("size", NS, "")
            Xw.WriteAttributeString("type", NS, "")
            Xw.WriteAttributeString("name", NS, "MyParameter")
            Xw.WriteAttributeString("description", NS, "Parameter description goes here.")
            Xw.WriteAttributeString("value", NS, "This is the default value for this parameter")
            Xw.WriteEndElement() 'PARAMETER
            'More parameters goes here
            '
            '
            'Close the open elements
            Xw.WriteEndElement() 'PARAMETERS
            Xw.WriteEndElement() 'CSSCRIPT
            Xw.WriteEndElement() 'CSROOT
            Xw.WriteEndDocument()
            Xw.Flush();
       End Using
       'Set the value of the inherited property CS_LiveObjectXML
       CS_LiveObjectXML = sbu.ToString()
    End Sub
End Class

This will render the following xml document that now is accessible through the CS_LiveObjectXML property

Xml
<CSROOT xmlns:cdt="http://www.teknikhuset.se/CS/datatypes">
   <CSSCRIPT name="MyLiveObject" 
             description="Description of the script goes here. 
                          This is a simple component that describes 
                          how to write inline server code for both C# and VB.Net." 
             version="1.0" 
             xhtmlsafe="1" 
             content="inline" 
             id="" 
             serverlanguage="c#|vb">
     <PARAMETERS>
        <PARAMETER cdt:size="" 
                   cdt:type="" 
                   cdt:name="MyParameter" 
                   cdt:description="Parameter description goes here." 
                   cdt:value="This is the default value for this parameter"/>
     </PARAMETERS>
   </CSSCRIPT>
</CSROOT>

Programkod för ovanstående exempel:

C#
<% Response.Write(CS_ReadLiveObjectParameterValue("MyParameter"));%>
Visual Basic .NET
<% Response.Write(CS_ReadLiveObjectParameterValue("MyParameter"))%>

För att i programkoden komma åt värdet för en viss parameter i LiveObjektet används alltså metoden CS_ReadLiveObjectParameterValue.

OBSERVERA! Attributet friendlyname får EJ ingå i attributet för LiveObjektet and was not included in the example above. Detta är en begränsning i den nuvarande versionen av Content Studio.